home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 7: Sunsite / Linux Cubed Series 7 - Sunsite Vol 1.iso / system / admin / sudo-1.000 / sudo-1 / sudo-1.2 / sudo.linux.diffs < prev    next >
Text File  |  1993-12-05  |  13KB  |  486 lines

  1. diff -c -r sudo-1.2/Makefile sudo-1.2-l/Makefile
  2. *** sudo-1.2/Makefile    Fri Jun 11 16:02:58 1993
  3. --- sudo-1.2-l/Makefile    Sun Dec  5 15:30:29 1993
  4. ***************
  5. *** 87,111 ****
  6.   #          Syslog_priority_NO       LOG_ALERT
  7.   #
  8.   
  9.      DEFINES = -LOGFILE=/var/log/sudo
  10.         OBJS = find_path.o logging.o sudo.o check.o parse.o lex.yy.o y.tab.o
  11.         SRCS = find_path.c logging.c sudo.c check.c parse.c
  12.     INCLUDES = sudo.h
  13.      SUDODIR = /usr/local/bin
  14. !  VISUDODIR = /usr/local/etc
  15. ! SUDOERSDIR = /etc
  16.   MANSECTION = 8
  17.       MANDIR = /usr/local/man/man${MANSECTION}
  18. !       PROG = sudo
  19. !    CCFLAGS = 
  20. !       LIBS = -ly -ll
  21.       SUNOS4 = -Bstatic
  22.   
  23.   
  24.   .SUFFIXES:    .o .c
  25.   
  26.   .c.o:    ${SRCS}
  27. !     cc ${CCFLAGS} -c ${DEFINES} $<
  28.   
  29.   all        :    ${PROG} visudo
  30.   
  31. --- 87,122 ----
  32.   #          Syslog_priority_NO       LOG_ALERT
  33.   #
  34.   
  35. + # define this for shadow passwords
  36. +     SHADOW = -DSHADOW_PWD
  37. +         CC = gcc
  38. +        LEX = flex
  39. +       YACC = bison -y
  40. +    CCFLAGS = -O2 -DHAVE_STRDUP -DLINUX $(SHADOW) -m486 -fomit-frame-pointer
  41. +    LDFLAGS = -s
  42. + # use this for debugging
  43. + #   CCFLAGS = -g -DHAVE_STRDUP -DLINUX $(SHADOW)
  44. +    LDFLAGS = 
  45.      DEFINES = -LOGFILE=/var/log/sudo
  46.         OBJS = find_path.o logging.o sudo.o check.o parse.o lex.yy.o y.tab.o
  47.         SRCS = find_path.c logging.c sudo.c check.c parse.c
  48.     INCLUDES = sudo.h
  49. +    SUDOBIN = sudo.bin
  50.      SUDODIR = /usr/local/bin
  51. !  VISUDODIR = /usr/local/sbin
  52. ! SUDOERSDIR = /usr/local/etc
  53.   MANSECTION = 8
  54.       MANDIR = /usr/local/man/man${MANSECTION}
  55. !       PROG = sudo.bin
  56. !       LIBS = -lshadow
  57.       SUNOS4 = -Bstatic
  58. +      LINUX = 
  59.   
  60.   
  61.   .SUFFIXES:    .o .c
  62.   
  63.   .c.o:    ${SRCS}
  64. !     ${CC} ${CCFLAGS} -c ${DEFINES} $<
  65.   
  66.   all        :    ${PROG} visudo
  67.   
  68. ***************
  69. *** 112,129 ****
  70.   all-sunos4    :    sudo-sunos4 visudo
  71.   
  72.   ${PROG}        :    ${OBJS} 
  73. !     cc -o $@ *.o ${LIBS}
  74.   
  75.   sudo-sunos4    :    ${OBJS}
  76. !     cc -o sudo *.o ${SUNOS4} ${LIBS}
  77.   
  78.   y.tab.o    y.tab.h    :    parse.yacc ${INCLUDES}
  79. !     yacc -d parse.yacc
  80. !     cc $(CCFLAGS) -c y.tab.c
  81.   
  82.   lex.yy.o    :    parse.lex y.tab.h ${INCLUDES}
  83. !     lex parse.lex
  84. !     cc $(CCFLAGS) -c lex.yy.c
  85.   
  86.   logging.o sudo.o check.o parse.o : ${INCLUDES}
  87.   
  88. --- 123,140 ----
  89.   all-sunos4    :    sudo-sunos4 visudo
  90.   
  91.   ${PROG}        :    ${OBJS} 
  92. !     ${CC} -o $@ *.o ${LIBS}
  93.   
  94.   sudo-sunos4    :    ${OBJS}
  95. !     ${CC} -o sudo *.o ${SUNOS4} ${LIBS}
  96.   
  97.   y.tab.o    y.tab.h    :    parse.yacc ${INCLUDES}
  98. !     ${YACC} -d parse.yacc
  99. !     ${CC} $(CCFLAGS) -c y.tab.c
  100.   
  101.   lex.yy.o    :    parse.lex y.tab.h ${INCLUDES}
  102. !     ${LEX} parse.lex
  103. !     ${CC} $(CCFLAGS) -c lex.yy.c
  104.   
  105.   logging.o sudo.o check.o parse.o : ${INCLUDES}
  106.   
  107. ***************
  108. *** 130,156 ****
  109.   visudo        :
  110.       (cd visudoers && make ${MFLAGS} $@)
  111.   
  112.   install-all    : install-binaries install-sudoers install-man
  113.   
  114.   install-all-sunos4: install-binaries-sunos4 install-sudoers
  115.   
  116.   install-sudoers:
  117. !     install -o root -g staff -m 0400 -c sudoers ${SUDOERSDIR}/sudoers
  118.   
  119.   install-binaries:    all
  120. !     install -o root -g staff -m 4111 -s -c sudo ${SUDODIR}/sudo
  121. !     install -o root -g staff -m 0111 -s -c visudoers/visudo ${VISUDODIR}/visudo
  122.   
  123.   install-binaries-sunos4:    sudo-sunos4 visudo
  124. !     install -o root -g staff -m 4111 -s -c sudo ${SUDODIR}/sudo
  125. !     install -o root -g staff -m 0111 -s -c visudoers/visudo ${VISUDODIR}/visudo
  126.   
  127.   install-man:
  128. !     install -o root -g staff -m 0644 -c sudo.8 ${MANDIR}/sudo.${MANSECTION}
  129.   
  130.   tags        :
  131.       ctags ${SRCS} ${INCLUDES}
  132.   
  133.   clean        :
  134. !     -rm -f lex.yy.* y.tab.* *.o sudo
  135.       (cd visudoers && make ${MFLAGS} $@);
  136. --- 141,170 ----
  137.   visudo        :
  138.       (cd visudoers && make ${MFLAGS} $@)
  139.   
  140. + install : install-all
  141.   install-all    : install-binaries install-sudoers install-man
  142.   
  143.   install-all-sunos4: install-binaries-sunos4 install-sudoers
  144.   
  145.   install-sudoers:
  146. !     install -o root -g wheel -m 0600 -c sudoers ${SUDOERSDIR}/sudoers
  147.   
  148.   install-binaries:    all
  149. !     install -o root -g wheel -m 4755 -s -c ${PROG} ${SUDODIR}/${SUDOBIN}
  150. !     install -o root -g wheel -m 0755 -c sudo.sh ${SUDODIR}/sudo
  151. !     install -o root -g wheel -m 0755 -s -c visudoers/visudo ${VISUDODIR}/visudo
  152.   
  153.   install-binaries-sunos4:    sudo-sunos4 visudo
  154. !     install -o root -g wheel -m 4111 -s -c sudo ${SUDODIR}/sudo
  155. !     install -o root -g wheel -m 0111 -s -c visudoers/visudo ${VISUDODIR}/visudo
  156.   
  157.   install-man:
  158. !     install -o root -g wheel -m 0644 -c sudo.8 ${MANDIR}/sudo.${MANSECTION}
  159.   
  160.   tags        :
  161.       ctags ${SRCS} ${INCLUDES}
  162.   
  163.   clean        :
  164. !     -rm -f lex.yy.* y.tab.* *.o ${PROG}
  165.       (cd visudoers && make ${MFLAGS} $@);
  166. diff -c -r sudo-1.2/check.c sudo-1.2-l/check.c
  167. *** sudo-1.2/check.c    Fri Jun 11 09:41:28 1993
  168. --- sudo-1.2-l/check.c    Sun Dec  5 14:57:31 1993
  169. ***************
  170. *** 44,49 ****
  171. --- 44,53 ----
  172.   #include <pwd.h>
  173.   #include "sudo.h"
  174.   
  175. + #ifdef LINUX
  176. + #include <sys/types.h>
  177. + #endif
  178.   char *getpass();
  179.   
  180.   static int  check_timestamp();
  181. ***************
  182. *** 74,80 ****
  183. --- 78,88 ----
  184.       exit(1);
  185.       }
  186.   rtn = check_timestamp();    
  187. + #ifdef LINUX
  188. + if ( setreuid (uid) ) {      /* don't want to be root longer than necessary */
  189. + #else 
  190.   if ( setruid (uid) ) {      /* don't want to be root longer than necessary */
  191. + #endif
  192.       perror("setruid(uid)");
  193.       exit(1);
  194.       }
  195. ***************
  196. *** 87,93 ****
  197. --- 95,105 ----
  198.       exit(1);
  199.       }
  200.   update_timestamp();
  201. + #ifdef LINUX
  202. + if ( setreuid (uid) ) {      /* don't want to be root longer than necessary */
  203. + #else
  204.   if ( setruid (uid) ) {      /* don't want to be root longer than necessary */
  205. + #endif
  206.       perror("setruid(uid)");
  207.       exit(1);
  208.       }
  209. ***************
  210. *** 205,211 ****
  211. --- 217,225 ----
  212.   
  213.   static void check_passwd()
  214.   {
  215. + #ifndef SHADOW_PWD
  216.   char *crypt();
  217. + #endif
  218.   struct passwd *pw_ent;
  219.   char *encrypted;                          /*  this comes from /etc/passwd  */
  220.   char *pass;                               /*  this is what gets entered    */
  221. diff -c -r sudo-1.2/find_path.c sudo-1.2-l/find_path.c
  222. *** sudo-1.2/find_path.c    Fri Jun 11 09:41:28 1993
  223. --- sudo-1.2-l/find_path.c    Sat Dec  4 22:37:39 1993
  224. ***************
  225. *** 232,238 ****
  226.   
  227.   
  228.   
  229.   /******************************************************************
  230.    *
  231.    *  strdup()
  232. --- 232,238 ----
  233.   
  234.   
  235.   
  236. ! #ifndef HAVE_STRDUP
  237.   /******************************************************************
  238.    *
  239.    *  strdup()
  240. ***************
  241. *** 250,252 ****
  242. --- 250,253 ----
  243.   strcpy(s,s1);
  244.   return (s);
  245.   }
  246. + #endif /* not defined HAVE_STRDUP */
  247. diff -c -r sudo-1.2/logging.c sudo-1.2-l/logging.c
  248. *** sudo-1.2/logging.c    Fri Jun 11 09:41:28 1993
  249. --- sudo-1.2-l/logging.c    Sat Dec  4 22:38:54 1993
  250. ***************
  251. *** 42,47 ****
  252. --- 42,51 ----
  253.   #include <sys/errno.h>
  254.   #include "sudo.h"
  255.   
  256. + #ifdef LINUX
  257. + #include <signal.h>
  258. + #endif /* LINUX */
  259.   void log_error();
  260.   void readchild();
  261.   static void send_mail();
  262. diff -c -r sudo-1.2/parse.lex sudo-1.2-l/parse.lex
  263. *** sudo-1.2/parse.lex    Fri Jun 11 09:41:28 1993
  264. --- sudo-1.2-l/parse.lex    Sat Dec  4 22:48:34 1993
  265. ***************
  266. *** 30,48 ****
  267.   *
  268.   * Lex Specification file for the sudo project.
  269.   *******************************************************************************/
  270. - #include "y.tab.h"
  271.   #include "sudo.h"
  272.   %}
  273.   
  274.   %%
  275.   [ \t]+            { ; }                     /* throw away space/tabs */
  276. ! \\\n            { ; }                     /* throw away EOL after \ */
  277.   \,            { return ','; }           /* return ',' */
  278.   \!            { return '!'; }           /* return '!' */
  279.   =            { return '='; }           /* return '=' */
  280.   :            { return ':'; }           /* return ':' */
  281. ! \n            { return COMMENT; }       /* return newline */
  282. ! #.*\n            { return COMMENT; }       /* return comments */
  283.   [@$%^&*()"'`/_+]*    { return ERROR; }         /* return error */
  284.   [?;<>\[\]{}|~.-]*    { return ERROR; }         /* return error */
  285.   ^[a-zA-Z0-9_-]+        { fill(); return IDENT1;} /* user/{Host,Cmnd}_Alias */
  286. --- 30,51 ----
  287.   *
  288.   * Lex Specification file for the sudo project.
  289.   *******************************************************************************/
  290.   #include "sudo.h"
  291. + #include "y.tab.h"
  292. + int yylineno;
  293.   %}
  294.   
  295.   %%
  296.   [ \t]+            { ; }                     /* throw away space/tabs */
  297. ! \\\n            { yylineno++; }           /* throw away EOL after \ */
  298.   \,            { return ','; }           /* return ',' */
  299.   \!            { return '!'; }           /* return '!' */
  300.   =            { return '='; }           /* return '=' */
  301.   :            { return ':'; }           /* return ':' */
  302. ! \n            { yylineno++;
  303. !               return COMMENT; }       /* return newline */
  304. ! #.*\n            {               yylineno++;
  305. !               return COMMENT; }       /* return comments */
  306.   [@$%^&*()"'`/_+]*    { return ERROR; }         /* return error */
  307.   [?;<>\[\]{}|~.-]*    { return ERROR; }         /* return error */
  308.   ^[a-zA-Z0-9_-]+        { fill(); return IDENT1;} /* user/{Host,Cmnd}_Alias */
  309. diff -c -r sudo-1.2/sudo.c sudo-1.2-l/sudo.c
  310. *** sudo-1.2/sudo.c    Fri Jun 11 09:41:28 1993
  311. --- sudo-1.2-l/sudo.c    Sun Dec  5 14:56:51 1993
  312. ***************
  313. *** 47,52 ****
  314. --- 47,55 ----
  315.   #include <stdio.h>
  316.   #include <string.h>
  317.   #include <strings.h>
  318. + #ifdef LINUX 
  319. + #include <sys/types.h>
  320. + #endif /* LINUX */
  321.   #include <pwd.h>
  322.   #include <netdb.h>
  323.   #include <sys/param.h>
  324. ***************
  325. *** 98,104 ****
  326. --- 101,111 ----
  327.       exit(1);
  328.       }
  329.   rtn=validate();
  330. + #ifdef LINUX
  331. + if ( setreuid(uid) ) {
  332. + #else
  333.   if ( setruid(uid) ) {
  334. + #endif
  335.       perror("setruid(uid)");
  336.       exit(1);
  337.       }
  338. diff -c -r sudo-1.2/sudo.h sudo-1.2-l/sudo.h
  339. *** sudo-1.2/sudo.h    Fri Jun 11 09:41:28 1993
  340. --- sudo-1.2-l/sudo.h    Sun Dec  5 14:40:44 1993
  341. ***************
  342. *** 92,98 ****
  343.   #endif
  344.   
  345.   #ifndef EDITOR
  346. ! #define EDITOR "/usr/ucb/vi"
  347.   #endif
  348.   
  349.   #ifndef MAXHOSTNAMELEN
  350. --- 92,98 ----
  351.   #endif
  352.   
  353.   #ifndef EDITOR
  354. ! #define EDITOR "/usr/bin/vi"
  355.   #endif
  356.   
  357.   #ifndef MAXHOSTNAMELEN
  358. ***************
  359. *** 137,143 ****
  360.   #endif
  361.   #else
  362.   #ifndef LOGFILE
  363. ! #if defined(ultrix) || defined(sun)
  364.   #define LOGFILE "/var/adm/sudo.log"
  365.   #else
  366.   #define LOGFILE "/usr/adm/sudo.log"
  367. --- 137,143 ----
  368.   #endif
  369.   #else
  370.   #ifndef LOGFILE
  371. ! #if defined(ultrix) || defined(sun) || defined(LINUX)
  372.   #define LOGFILE "/var/adm/sudo.log"
  373.   #else
  374.   #define LOGFILE "/usr/adm/sudo.log"
  375. Only in sudo-1.2-l: sudo.sh
  376. diff -c -r sudo-1.2/visudoers/Makefile sudo-1.2-l/visudoers/Makefile
  377. *** sudo-1.2/visudoers/Makefile    Fri Jun 11 09:41:29 1993
  378. --- sudo-1.2-l/visudoers/Makefile    Sun Dec  5 15:32:31 1993
  379. ***************
  380. *** 26,47 ****
  381.   #   This is the makefile for visudo
  382.   #
  383.   #
  384. ! CCFLAGS=
  385. !    LIBS=-ly -ll
  386.   
  387.   visudo        :    lex.yy.o y.tab.o visudo.o
  388. !     cc $(CCFLAGS) -o $@ *.o ${LIBS}
  389.   
  390. ! y.tab.o y.tab.h :       visudo.yacc sudo.h
  391. !     yacc -d visudo.yacc
  392. !     cc $(CCFLAGS) -c y.tab.c
  393.   
  394. ! lex.yy.o        :       visudo.lex y.tab.h sudo.h
  395. !     lex visudo.lex
  396. !     cc $(CCFLAGS) -c lex.yy.c
  397.   
  398. ! visudo.o    :    visudo.c sudo.h
  399. !     cc $(CCFLAGS) -c visudo.c
  400.   
  401.   clean        :
  402.       -rm -f lex.yy.* y.tab.* *.o visudo
  403. --- 26,55 ----
  404.   #   This is the makefile for visudo
  405.   #
  406.   #
  407. !      CC=gcc
  408. ! #     CC=cc
  409. !     LEX=flex
  410. ! #    LEX=lex
  411. !    YACC=bison -y
  412. ! #   YACC=yacc
  413. ! CCFLAGS=-I.. -m486 -fomit-frame-pointer -O2
  414. ! LDFLAGS=-s -N
  415. !    LIBS=
  416. ! #   LIBS=-ll -ly
  417.   
  418.   visudo        :    lex.yy.o y.tab.o visudo.o
  419. !     $(CC) $(CCFLAGS) -o $@ *.o ${LIBS}
  420.   
  421. ! y.tab.o y.tab.h :       visudo.yacc ../sudo.h
  422. !     $(YACC) -d visudo.yacc
  423. !     $(CC) $(CCFLAGS) -c y.tab.c
  424.   
  425. ! lex.yy.o        :       visudo.lex y.tab.h ../sudo.h
  426. !     $(LEX) visudo.lex
  427. !     $(CC) $(CCFLAGS) -c lex.yy.c
  428.   
  429. ! visudo.o    :    visudo.c ../sudo.h
  430. !     $(CC) $(CCFLAGS) -c visudo.c
  431.   
  432.   clean        :
  433.       -rm -f lex.yy.* y.tab.* *.o visudo
  434. Only in sudo-1.2/visudoers: sudo.h
  435. diff -c -r sudo-1.2/visudoers/visudo.lex sudo-1.2-l/visudoers/visudo.lex
  436. *** sudo-1.2/visudoers/visudo.lex    Fri Jun 11 09:41:29 1993
  437. --- sudo-1.2-l/visudoers/visudo.lex    Sat Dec  4 22:52:30 1993
  438. ***************
  439. *** 30,48 ****
  440.   *
  441.   * Lex Specification file for the sudo project.
  442.   *******************************************************************************/
  443. - #include "y.tab.h"
  444.   #include "sudo.h"
  445.   %}
  446.   
  447.   %%
  448.   [ \t]+            { ; }                     /* throw away space/tabs */
  449. ! \\\n            { ; }                     /* throw away EOL after \ */
  450.   \,            { return ','; }           /* return ',' */
  451.   \!            { return '!'; }           /* return '!' */
  452.   =            { return '='; }           /* return '=' */
  453.   :            { return ':'; }           /* return ':' */
  454. ! \n            { return COMMENT; }       /* return newline */
  455. ! #.*\n            { return COMMENT; }       /* return comments */
  456.   [@$%^&*()"'`/_+]*    { return ERROR; }         /* return error */
  457.   [?;<>\[\]{}|~.-]*    { return ERROR; }         /* return error */
  458.   ^[a-zA-Z0-9_-]+        { fill(); return IDENT1;} /* user/{Host,Cmnd}_Alias */
  459. --- 30,51 ----
  460.   *
  461.   * Lex Specification file for the sudo project.
  462.   *******************************************************************************/
  463.   #include "sudo.h"
  464. + #include "y.tab.h"
  465. + int yylineno;
  466.   %}
  467.   
  468.   %%
  469.   [ \t]+            { ; }                     /* throw away space/tabs */
  470. ! \\\n            { yylineno++; }           /* throw away EOL after \ */
  471.   \,            { return ','; }           /* return ',' */
  472.   \!            { return '!'; }           /* return '!' */
  473.   =            { return '='; }           /* return '=' */
  474.   :            { return ':'; }           /* return ':' */
  475. ! \n            { yylineno++;
  476. !               return COMMENT; }       /* return newline */
  477. ! #.*\n            { yylineno++;
  478. !               return COMMENT; }       /* return comments */
  479.   [@$%^&*()"'`/_+]*    { return ERROR; }         /* return error */
  480.   [?;<>\[\]{}|~.-]*    { return ERROR; }         /* return error */
  481.   ^[a-zA-Z0-9_-]+        { fill(); return IDENT1;} /* user/{Host,Cmnd}_Alias */
  482.